import scrapy

from dangdang.items import DangdangItem
from matplotlib.pyplot import title


class BookAndTextSpider(scrapy.Spider):
    name = "book_and_text"
    allowed_domains = ["dangdang.com"]
    start_urls = ["https://category.dangdang.com/cp01.54.06.06.00.00.html"]

    # 爬取第一层书籍名称
    def parse(self, response):
       # 爬取书籍名称
       base_url= response.xpath('//ul/li/p[1]/a')
       for url in base_url:
        title=url.xpath('.//@title').extract_first()
        url=url.xpath('.//@href').extract_first()
        base_url='https:'+url
        #meta是一个字典，可以将数据作为请求参数传递过去
        #callback后面的方法逻辑需要自己写
        yield scrapy.Request(url=base_url, callback=self.myparse,meta={'title':title})
    #第二层价格爬取逻辑
    def myparse(self, response):
        #接收传递的数据
        title = response.meta['title']
        text=response.xpath('//div//p[@id="dd-price"]/text()').extract_first()
        book= DangdangItem(title=title,text=text)
        yield book



